home *** CD-ROM | disk | FTP | other *** search
- //
- // CITWindow include
- //
- // StormC
- //
- // version 2002.02.25
- //
-
- #ifndef CIT_CITWINDOW_H
- #define CIT_CITWINDOW_H TRUE
-
- #include "CITScreen.h"
- #include <classes/window.h>
- #include <intuition/classusr.h>
-
- //
- // These enums only for internal use
- //
- enum
- {
- CITWD_POSITION = 0,
- CITWD_POSITION_Y,
- CITWD_WIDTH,
- CITWD_HEIGHT,
- CITWD_LOCKWIDTH,
- CITWD_LOCKHEIGHT,
- CITWD_SHAREDPORT,
- CITWD_APPWINDOW,
- CITWD_APPPORT,
- CITWD_ICONIFYGADGET,
- CITWD_BACKFILLNAME,
- CITWD_MENUSTRIP,
- CITWD_ICONTITLE,
- CITWD_ICON,
- CITWD_GADGETHELP,
- CITWD_CUSTOMSCREEN,
- CITWD_REFWINDOW,
- CITWD_ACTIVATE,
- CITWD_CLOSEGADGET,
- CITWD_DEPTHGADGET,
- CITWD_SIZEGADGET,
- CITWD_DRAGBAR,
- CITWD_BORDERLESS,
- CITWD_BACKDROP,
- CITWD_CAPTION,
- CITWD_SCREENTITLE,
- CITWD_LAST
- };
-
- class CITWindowClass;
- class CITRootClass;
- class CITGroup;
-
- class CITWindow:public CITScreenClass
- {
- public:
- Window* window;
- Object* windowObject;
- TTextAttr* defTextAttr;
- TextFont* defTextFont;
- int LeftEdge, TopEdge;
- int Width, Height;
-
- CITWindow();
- ~CITWindow();
-
- void InsObject(CITWindowClass& winClass,BOOL& Err);
- void InsObject(CITWindowClass& winClass,CITRootClass* parent,BOOL& Err);
- void RemObject(CITWindowClass& winClass);
-
- void Align(CITGroup& group1,CITGroup& group2);
-
- void Size(int w, int h);
- void Position(int x, int y);
- void Position(UWORD pos);
- void LockWidth(ULONG w)
- {setTag(CITWD_LOCKWIDTH,WINDOW_LockWidth,w);}
- void LockHeigh(ULONG h)
- {setTag(CITWD_LOCKHEIGHT,WINDOW_LockHeight,h);}
- void AppPort(BOOL b = TRUE)
- {setTag(CITWD_APPPORT,WINDOW_AppPort,b,0);}
- void AppWindow(BOOL b = TRUE)
- {setTag(CITWD_APPWINDOW,WINDOW_AppWindow,b,0);}
- void IconifyGadget(BOOL b = TRUE);
- void BackFillName(char* name)
- {setTag(CITWD_BACKFILLNAME,WINDOW_BackFillName,ULONG(name));}
- void BusyPointer(BOOL b);
- void Zoom(BOOL b);
- void MenuStrip(struct Menu* menu)
- {setTag(CITWD_MENUSTRIP,WINDOW_MenuStrip,ULONG(menu));}
- void IconTitle(char* title)
- {setTag(CITWD_ICONTITLE,WINDOW_IconTitle,ULONG(title));}
- void Icon (struct DiskObject* diskObject)
- {setTag(CITWD_ICON,WINDOW_Icon,ULONG(diskObject));}
- void GadgetHelp(BOOL b = TRUE)
- {setTag(CITWD_GADGETHELP,WINDOW_GadgetHelp,b);}
- void RefWindow(struct Window* win)
- {setTag(CITWD_REFWINDOW,WINDOW_RefWindow,ULONG(win));}
- void Activate(BOOL b = TRUE)
- {setTag(CITWD_ACTIVATE,WA_Activate,b);}
- void CloseGadget(BOOL b =TRUE)
- {setTag(CITWD_CLOSEGADGET,WA_CloseGadget,b);}
- void DepthGadget(BOOL b = TRUE)
- {setTag(CITWD_DEPTHGADGET,WA_DepthGadget,b);}
- void SizeGadget(BOOL b = TRUE)
- {setTag(CITWD_SIZEGADGET,WA_SizeGadget,b);}
- void DragBar(BOOL b = TRUE)
- {setTag(CITWD_DRAGBAR,WA_DragBar,b);}
- void Borderless(BOOL b = TRUE)
- {setTag(CITWD_BORDERLESS,WA_Borderless,b);}
- void Backdrop(BOOL b = TRUE)
- {setTag(CITWD_BACKDROP,WA_Backdrop,b);}
- void ToFront();
- void ToBack();
- void ScreenTitle(char* title)
- {setTag(CITWD_SCREENTITLE,WA_ScreenTitle,ULONG(title));}
- void Caption(char* title)
- {setTag(CITWD_CAPTION,WA_Title,ULONG(title));}
- void DefaultFont(char* name, short Height, short Width = 0);
-
- BOOL ClosePressed();
- int TextLen(char* t);
-
- // Set user event handlers
- void CloseEventHandler(void (*p)());
- void CloseEventHandler(void* that,void* p);
-
- // Return inner size of window
- virtual int InnerWidth();
- virtual int InnerHeight();
-
- protected:
- virtual void CloseEvent();
- virtual void NewSizeEvent();
- virtual BOOL Create(CITScreen* CITScr);
- virtual void Delete();
- virtual void HandleEvent(ULONG Sigs);
- virtual void HandleWindowEvent(ULONG result,UWORD code);
-
- private:
- MsgPort* wdIDCMP;
- MsgPort* appPort;
- TTextAttr wdTextAttr;
- TextFont* wdTextFont;
- CITList eventList;
- CITList childList;
- CITList* alignList;
- TagItem* windowTag;
- ULONG flags;
-
- void *closeEventThat;
- union
- {
- void (*Proc0)();
- void (*Proc1)(void* that);
- } closeEvent;
-
- void setTag(int index,ULONG attr,ULONG val,BOOL set = TRUE);
- void SetUp();
- };
-
- class CITWindowClass:public CITNode
- {
- public:
- CITWindow* CITWd;
-
- CITWindowClass();
- ~CITWindowClass();
-
- protected:
- friend class CITWindow;
-
- UWORD classID;
- ULONG IDCMPFlags;
- ULONG EventType;
-
- virtual BOOL Create(CITWindow* CITWd,class CITRootClass* parent);
- virtual void Delete();
- virtual void HandleEvent(ULONG result,UWORD code);
- };
-
- #endif
-